// pages/phone-login/index.js
import request from '../../utils/request.js'
// 设一变量存储定时器
var timer = null
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phoneNumber: '13122222222',
    isCountDown: false,
    countNum: 60,
    vcode: null
  },
  // 获取用户输入的手机号
  getPhoneNumber(e) {
    console.log(e)
    this.setData({
      phoneNumber: e.detail.value
    })
  },
  // 获取用户输入的验证码
  getUserVcode(e) {
    console.log(e)
    this.setData({
      vcode: e.detail.value
    })
  },
  // 获取验证码
  async getVcode() {
    if (this.data.isCountDown) {
      return
    }
    // 正则判断手机号格式
    if (!/^1[3456789][0-9]{9}$/.test(this.data.phoneNumber)) {
      // 错误格式
      wx.showToast({
        title: '请输入正确格式的手机号',
        icon: 'none'
      })
      return
    }
    // 手机号格式正确
    this.setData({
      isCountDown: true
    })
    // 发送请求 获取4位验证码
    let data = await request({
      url: '/user/vcode',
      data: {
        phone: this.data.phoneNumber
      },
      isAuth: false
    })
    // 弹出验证吗
    wx.showToast({
      title: '验证码:' + String(data.vcode),
      icon: 'none',
      duration: 3000
    })
    // 设一个定时器 开启倒计时
    timer = setInterval(() => {
      let countNum = this.data.countNum
      countNum--
      if (countNum > 0) {
        this.setData({
          countNum
        })
      } else {
        // 清除定时器
        clearTimeout(timer)
        this.setData({
          isCountDown: false,
          countNum: 60
        })
      }
    }, 1000)
  },
  // 手机号登录
  async phoneLogin() {
    if (!/^1[3456789][0-9]{9}$/.test(this.data.phoneNumber)) {
      // 错误格式
      wx.showToast({
        title: '请输入正确格式的手机号',
        icon: 'none'
      })
      return
    }
    if (!/^[0-9]{4}$/.test(this.data.vcode)) {
      // 错误格式
      wx.showToast({
        title: '请输入正确格式的验证码',
        icon: 'none'
      })
      return
    }
    let data = await request({
      url: '/user/login',
      method: 'POST',
      data: {
        phone: this.data.phoneNumber,
        vcode: this.data.vcode
      },
      isAuth: false
    })
    console.log(data)
    // 存token 
    wx.setStorageSync('token', data.token)
    wx.showToast({
      title: '手机号登录成功',
      success() {
        // 跳转首页
        // reLaunch 关闭久页面,开启新页面
        wx.reLaunch({
          url: '/pages/home/index',
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})